package mediator;

/**
 * 中介者模式（调解者模式、调停者模式）
 *  用一个中介对象，封装一系列的对象交互，使各个对象不需要显示地相互作用，降低多个对象和类之间的通信复杂性
 *  1. 抽象中介者
 *  2. 中介者实现
 *  3. 抽象组件类
 *  4. 具体组件类
 * 场景：
 *  1. 系统中对象引用复杂
 *  2. 一个中间对象封装多个类的共有行为，dao层和db之间有Mybatis中间层
 *  3. 不要太多子类
 * =>
 *  1. jdk的Timer
 * 特点：
 *  1. 解耦合，统一协同对象间的通信
 */
public class MediatorTest {
    public static void main(String[] args) {
        //中介
        Mediator mediator = new MediatorImpl();
        //组件
        ComponentA componentA = new ComponentA(mediator);
        ComponentB componentB = new ComponentB(mediator);
        componentA.exec("xxx");
        componentB.exec("xxx");
    }
}
